1. Field of the Invention
The present invention relates to Fibre Channel network systems, and more particularly, to checking frame-length in Fibre Channel frames.
2. Background of the Invention
Fibre Channel is a set of American National Standard Institute (ANSI) standards, which provide a serial transmission protocol for storage and network protocols such as HIPPI, SCSI, IP, ATM and others. Fibre Channel provides an input/output interface to meet the requirements of both channel and network users.
Fibre Channel supports three different topologies: point-to-point, arbitrated loop and Fibre Channel fabric. The point-to-point topology attaches two devices directly. The arbitrated loop topology attaches devices in a loop. The Fibre Channel fabric topology attaches host systems directly to a fabric, which are then connected to multiple devices. The Fibre Channel fabric topology allows several media types to be interconnected.
Fibre Channel fabric devices include a node port or “N_Port” that manages fabric connections. The N_port establishes a connection to a fabric element (e.g., a switch) having a fabric port or “F_port”.
A Fibre Channel switch is a multi-port device where each port manages a point-to-point connection between itself and its attached system. Each port can be attached to a server, peripheral, I/O subsystem, bridge, hub, router, or even another switch. A switch receives messages from one port and routes it to another port.
Fibre Channel frames carry information between Fibre Channel Devices which include Host Bus Adapters, Switches and Disk Drives. The components of a Fibre Channel Frame include SOF, Frame Header, Payload, CRC and EOF. Typically, the minimum frame-length of a Fibre frame is 36 bytes and the maximum frame-length of a Fibre Channel frame is 2148 bytes.
Typically, a Fibre Channel device receives an incoming Fibre Channel frame when it detects a Start-Of-Frame (SOF) delimiter. The receive port detects an end of the Fibre Channel frame when it detects an End-Of-Frame (EOF) delimiter or if the maximum frame-length is reached. The receive port of the Fibre Channel device keeps a count of the frame-length of the Fibre Channel frame. The frame-length includes the summation of the length of SOF (4 bytes), Frame Header (24 bytes), Payload (0-2112 bytes), CRC (4 bytes) and EOF (4 bytes). The receive port then determines if the frame-length of the received Fibre Channel frame is within the minimum and maximum frame-length as specified in the Fibre Channel specification. If a violation of the frame-length occurs, then the frame is discarded and an error is reported to a processor.
With the addition of new routing features for example, Virtual Fabric and Inter-Fabric routing, the length of the Frame Header has changed. This addition caused the total frame-length of the Fibre Channel frame to be different than the current maximum and minimum frame-length. When a switch that was designed before these features were introduced receives a Fibre Channel frame, data is corrupted if the EOF is not detected due to the varying lengths of the frame. Furthermore, the current frame-length checking mechanism causes erroneous errors. Therefore, there is a need for a method and system for efficiently checking the frame-length of a Fibre Channel frame with varying frame lengths.